package internal

import (
	"reflect"
	"ycxp/msg"
	"ycxp/ysjzx/gateway"
	"ycxp/ysjzx/log"
)

func init() {
	// 向当前模块（game 模块）注册 YPackage 消息的消息处理函数 handleHello
	handler(&msg.YRequest{}, handleHello)
}

func handler(m interface{}, h interface{}) {
	skeleton.RegisterChanRPC(reflect.TypeOf(m), h)
}

func handleHello(args []interface{}) {
	// 收到的 Hello 消息
	m := args[0].(*msg.YRequest)
	// 消息的发送者
	a := args[1].(gateway.Agent)

	// 输出收到的消息的内容
	log.Debug("hello %v", m.Name)

	// 给发送者回应一个 Hello 消息
	a.WriteMsg(&msg.YResponse{
		Name: "client",
	})
}
